package lib.bone.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lib.bone.common.converter.EncryptConverter;
import lib.bone.system.domain.entity.SysDept;
import lib.bone.system.domain.entity.SysRole;
import lib.bone.system.domain.vo.LoginVO;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;

import javax.persistence.*;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @Author : Kindear
 * @Desc : 已登录用户数据
 */
@Data
@ApiModel("登录用户非敏感数据")
public class LoginUserVO {
    @ApiModelProperty("部门")
    SysDept sysDept;

    @ApiModelProperty("用户权限列表")
    List<String> perms;

    @ApiModelProperty("用户账号")
    String userName;

    @ApiModelProperty("用户昵称")
    String nickName;

    @ApiModelProperty("用户手机号")
    String phoneNumber;
    /** 用户邮箱 & 用户登录账号 **/
    @ApiModelProperty("用户邮箱")
    String email;

    /**
     * 用户性别 可选 男 女 第三性别
     */
    @ApiModelProperty("用户性别")
    private String sex;

    /**
     * 用户头像地址 OSS
     */
    @ApiModelProperty("用户头像")
    private String avatar;

    /**
     * 最后登录IP
     */
    @ApiModelProperty("最后登录IP")
    private String loginIp;

    /**
     * 最后登录时间
     */
    @ApiModelProperty("最后登录时间")
    private Date loginDate;

    /**
     * 角色组
     */
    @ApiModelProperty("用户角色组")
    Set<SysRole> roles;
    /**
     * 时间记录
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "记录创建时间",name = "createdTime")
    private Date createdTime;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value = "记录更新时间",name = "updatedTime")
    private Date updatedTime;
}
